package cn.iocoder.yudao.module.scenic.remote.model.param;

import cn.iocoder.yudao.module.scenic.remote.model.param.common.BodyParam;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author superzp
 * @date 2024/04/09 17:47
 */
@NoArgsConstructor
@Data
public class ChatWithKnowledgeBodyParam extends BodyParam {


    @JSONField(name="query")
    private String query;
    @JSONField(name="knowledge_base_name")
    private String knowledgeBaseName;
    @JSONField(name="top_k")
    private Integer topK;
    @JSONField(name="score_threshold")
    private Integer scoreThreshold;
    @JSONField(name="history")
    private List<HistoryDTO> history;
    @JSONField(name="stream")
    private Boolean stream;
    @JSONField(name="model_name")
    private String modelName;
    @JSONField(name="temperature")
    private Double temperature;
    @JSONField(name="max_tokens")
    private Integer maxTokens;
    @JSONField(name="prompt_name")
    private String promptName;

    @NoArgsConstructor
    @Data
    public static class HistoryDTO {
        @JSONField(name="role")
        private String role;
        @JSONField(name="content")
        private String content;
    }
}
